home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #045 (1990)(Amiga User Group Deutschland e.V.).zip
/
Franz PD Disk #045 (1990)(Amiga User Group Deutschland e.V.).adf
/
DT
/
dtx.c
< prev
Wrap
C/C++ Source or Header
|
1989-07-02
|
2KB
|
85 lines
/*********************************************************
* *
* PROGRAMM : dt *
* =========================== *
* *
* compile: AZTEC_C +l link: -m -lc *
* *
* Autor : JAN Andreas Neuper Datum : 03/09/1989 *
* *
* Bem.: kurzer Code, lange Sourcedatei, nicht optimiert *
* *
*********************************************************/
#include <exec/types.h>
#include <libraries/dos.h>
#include <functions.h>
char str[] = " 00:00:00 Uhr, am ";
char str2[] = " den ";
char str3[] = " 1989;";
char str4[] = ".Tag und ";
char str5[] = ".Woche\n";
short ylen[] = { 365,365,366,365 };
char mlen[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
char *wday[] = { "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"};
char *month[] = { "Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember" };
put(str)
void *str;
{ void *fhd;
fhd = Open("*",MODE_OLDFILE);
Write(fhd,str,strlen(str));
Close(fhd);
}
long artic(n,string,val,fmt)
long n,val;
BOOL fmt;
char *string;
{
if(val>99) string[n++] = val/100+'0';
if(val>9) string[n++] = (val%100)/10+'0';
else if(fmt) n++;
string[n++] = val%10+'0';
return(n);
}
_main(argc,argv)
int argc;
char *argv; /* diese Zeile ist OK ! keine [], da _main; argc ist Dummy */
{ int register i;
long ptr[3];
long year,days,week;
short mon=0;
DateStamp(ptr);
artic(1,str,ptr[1]/60,TRUE); /* Uhrzeit */
artic(4,str,ptr[1]%60,TRUE);
artic(7,str,ptr[2]/50,TRUE);
put(str);
put(wday[ptr[0]%7]); /* Wochentag */
/* ¡ Woche beginnt mit Sonntag ! ==> 'Woche' */
days = ptr[0]; /* +1 wegen Datumsbeginn am 1.1.78 */ /* Datum */
days++;
year = 978; /* Jahr */
for(i=0;days>(long)ylen[i%4];i++) { year++;days -= (long)ylen[i%4];}
/* soll nur bis 2399 A.D. gelten */
if(i%4==2) mlen[1] = 29; /* Monat */
week = days;
for(i=0;days>(long)mlen[i];i++) {mon++;days -= (long)mlen[i];}
str2[days = artic(5,str2,days,FALSE)] = '.'; /* Tag im Monat */
str2[days+1] = 0;
put(str2); /* Ausgabe des Datums */
put(month[mon]);
if (year>=1000) str3[1] = '2';
artic(2,str3,year%1000,FALSE);
put(str3);
str[artic(1,str,week,FALSE)] = 0; /* Tag des Jahres */
put(str);put(str4);
str[artic(1,str,week/7+1,FALSE)] = 0; /* Woche des Jahres */
put(str);put(str5);
}